const express = require('express');
const path = require('path');
const fs = require('fs');

const app = express();
const PORT = 3010;

// API端点：读取1.txt文件并返回处理后的消息数组（必须在静态文件之前）
app.get('/api/messages', (req, res) => {
    try {
        const filePath = path.join(__dirname, '1.txt');
        console.log('尝试读取文件:', filePath);
        
        // 检查文件是否存在
        if (!fs.existsSync(filePath)) {
            console.error('文件不存在:', filePath);
            return res.status(404).json({ error: '消息文件不存在' });
        }
        
        const content = fs.readFileSync(filePath, 'utf-8');
        console.log('文件读取成功，内容长度:', content.length);
        
        // 按行分割内容
        const lines = content.split('\n');
        console.log('总行数:', lines.length);
        
        // 处理每一行，去除序号和点号
        const messages = lines
            .map(line => line.trim()) // 去除首尾空白
            .filter(line => line.length > 0 && line !== '​') // 过滤空行和零宽字符
            .map(line => {
                // 智能去除序号：匹配 "数字." 或 "数字. " 开头的部分
                return line.replace(/^\d+\.\s*/, '');
            })
            .filter(line => line.length > 0); // 再次过滤可能产生的空行
        
        console.log('处理后的消息数量:', messages.length);
        res.json({ messages });
    } catch (error) {
        console.error('读取消息文件失败:', error);
        console.error('错误详情:', error.stack);
        res.status(500).json({ error: '读取消息失败: ' + error.message });
    }
});

// 设置静态文件目录为public文件夹（在API路由之后）
app.use(express.static(path.join(__dirname, 'public')));

// 允许访问根目录的音频文件
app.get('/123.mp3', (req, res) => {
    const audioPath = path.join(__dirname, '123.mp3');
    if (fs.existsSync(audioPath)) {
        res.sendFile(audioPath);
    } else {
        res.status(404).send('Audio file not found');
    }
});

// 处理所有其他路由，返回index.html
app.get('*', (req, res) => {
    res.sendFile(path.join(__dirname, 'public', 'index.html'));
});

// 启动服务器
app.listen(PORT, () => {
    console.log('');
    console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
    console.log('💝 温馨提示网站已启动！');
    console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
    console.log('');
    console.log(`  🌐 本地访问: http://localhost:${PORT}`);
    console.log(`  🌐 网络访问: http://127.0.0.1:${PORT}`);
    console.log('');
    console.log('  💡 提示: 按 Ctrl+C 可以停止服务器');
    console.log('');
    console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
    console.log('');
});

// 优雅关闭
process.on('SIGINT', () => {
    console.log('\n');
    console.log('👋 温馨提示网站已关闭，再见！');
    process.exit(0);
});

